条件函数

您所在的位置:网站首页 clickhouse 行号 条件函数

条件函数

2024-07-10 10:52| 来源: 网络整理| 查看: 265

条件函数if​

控制条件分支。 与大多数系统不同,ClickHouse始终评估两个表达式 then 和 else。

语法

SELECT if(cond, then, else)

如果条件 cond 的计算结果为非零值,则返回表达式 then 的结果,并且跳过表达式 else 的结果(如果存在)。 如果 cond 为零或 NULL,则将跳过 then 表达式的结果,并返回 else 表达式的结果(如果存在)。

您可以使用short_circuit_function_evaluation 设置,来根据短路方案计算 if 函数。如果启用此设置,则仅在cond为真的时,加载then表达式,此时不加载else表达式。仅在cond为假时,加载else表达式,此时不加载then表达式。例如,执行查询SELECT if(number = 0, 0, intDiv(42, number)) FROM numbers(10)时不会抛出除以零的异常,因为intDiv(42, number)会仅对不满足条件number = 0的数字进行处理。

参数

cond – 条件结果可以为零或不为零。 类型是 UInt8,Nullable(UInt8) 或 NULL。then - 如果满足条件则返回的表达式。else - 如果不满足条件则返回的表达式。

返回值

该函数执行 then 和 else 表达式并返回其结果,这取决于条件 cond 最终是否为零。

示例

查询:

SELECT if(1, plus(2, 2), plus(2, 6))

结果:

┌─plus(2, 2)─┐│ 4 │└────────────┘

查询:

SELECT if(0, plus(2, 2), plus(2, 6))

结果:

┌─plus(2, 6)─┐│ 8 │└────────────┘then 和 else 必须具有最低的通用类型。

示例:

给定表LEFT_RIGHT:

SELECT *FROM LEFT_RIGHT┌─left─┬─right─┐│ ᴺᵁᴸᴸ │ 4 ││ 1 │ 3 ││ 2 │ 2 ││ 3 │ 1 ││ 4 │ ᴺᵁᴸᴸ │└──────┴───────┘

下面的查询比较了 left 和 right 的值:

SELECT left, right, if(left


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3